
import { createApp } from 'vue' 
import { createStore } from 'vuex' 
// 同步方法，修改state的值
import * as types from './mutations_type/mutations-type'
import list from './module/list'



const store = createStore({
	modules: {
		list
	},
	state: {
		name: '韩美',
		singer: '美梦如初',
		blo:false
	},
	getters: {
		nameInfo(state) {
			return "姓名:" + state.name
		},
		nameInfoage(state) {
			// 先是返回一个函数进行传值,在函数内返回数据,传参是往返回的函数里传参
			return function(age) {
				return "姓名:" + state.name + '年龄:' + age
			}
			// 
		},
	},
	// actions可以操作mutations的方法，也可在页面直接操作
	// actions要在methods里调用
	actions: {
		setUserInfo({
			commit
		}, userInfo) {
			// userInfo如果是对象{userInfo}赋值时也是对象，取值是取到对象
			commit(types.SET_SINGER, userInfo);
		},
		setUser({
			commit
		}) {
			commit(types.SET_USER);
		},

	},
	// mutations可以直接在页面触发,也可被actions触发
	mutations: {
		// 取常量
		[types.SET_SINGER](state, singer) {
			state.singer = singer
		},
		[types.SET_USER](state) {
			state.singer = '我最美'
		},
		school(state,bloo) {
			state.blo=bloo
		}

	}

})

export default store